package br.com.esporte.apresentacao.infra.template.entidade;

import org.apache.wicket.model.CompoundPropertyModel;

import br.com.esporte.apresentacao.infra.componente.menu.MenuEnum;
import br.com.esporte.apresentacao.infra.generic.Pagina;
import br.com.esporte.apresentacao.infra.template.PaginaTemplate;
import br.com.esporte.negocios.entidade.IEntidade;

/**
 * 
 * @author Milton Domingues
 *
 * @param <ENTIDADE>
 */
public abstract class PaginaEntidade<ENTIDADE extends IEntidade> extends PaginaTemplate implements IPaginaEntidade<ENTIDADE> {

	private ENTIDADE vo;

	public PaginaEntidade(ENTIDADE entidade) {
		this(entidade, null, null);
	}

	public PaginaEntidade(ENTIDADE entidade, Pagina paginaRetorno, MenuEnum menuHome) {
		super(paginaRetorno, menuHome);
		this.setVo(entidade);
	}

	@Override
	public ENTIDADE getVo() {
		return this.vo;
	}

	protected boolean isUpdate(){
		return (this.vo.getId() != null);
	}

	@Override
	public void montarPagina() {
		super.montarPagina();
		this.getContainer().setDefaultModel(new CompoundPropertyModel<ENTIDADE>(this.vo));
	}

	@Override
	public void setVo(ENTIDADE vo) {
		this.vo = vo;
	}

}
